package com.holyant.goods.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.domain.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 商品实时价格dto
 * 
 * @author fkmalls
 * @date 2021-08-25
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("商品采购价格")
public class GdsSkuPurchasePriceDto extends BaseDto {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "enterpriseId")
    private Long enterpriseId;

    @Excel(name = "供应商名称")
    @ApiModelProperty(value = "enterpriseName")
    private String enterpriseName;

    /** skuid */
    @ApiModelProperty(value = "skuid")
    private Long skuId;

    /** sku编码 */
    @Excel(name = "sku编码")
    @ApiModelProperty(value = "sku编码")
    private String skuCode;

    /** sku名称 */
    @Excel(name = "sku名称")
    @ApiModelProperty(value = "sku名称")
    private String skuName;

    /** 商品id */
    @ApiModelProperty(value = "商品id")
    private Long goodsId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    /** 商品条码 */
    @Excel(name = "商品条码")
    @ApiModelProperty(value = "商品条码")
    private String goodsBarcode;

    /** 商品编码 */
    @ApiModelProperty(value = "商品编码")
    private String goodsCode;

    /** 分类id */
    @ApiModelProperty(value = "分类id")
    private Long categoryId;

    /** 分类编码 */
    @ApiModelProperty(value = "分类编码")
    private String categoryCode;

    /** 分类名称 */
    @ApiModelProperty(value = "分类名称")
    private String categoryName;

    /** 计量单位id */
    @ApiModelProperty(value = "计量单位id")
    private Long unitId;

    /** 计量单位名称 */
    @ApiModelProperty(value = "计量单位名称")
    private String unitName;

    /** 毛重 */
    @ApiModelProperty(value = "毛重")
    private BigDecimal grossWeigtht;

    /** 净重 */
    @ApiModelProperty(value = "净重")
    private BigDecimal netWeigtht;

    /** 体积 */
    @ApiModelProperty(value = "体积")
    private BigDecimal volume;

    /** 规格 */
    @ApiModelProperty(value = "规格")
    private String specs;

    /** 失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "失效日期")
    private LocalDate expireDate;

    /** 箱规 */
    @ApiModelProperty(value = "箱规")
    private String boxSpec;

    /** 托规 */
    @ApiModelProperty(value = "托规")
    private String palletSpec;

    /** 品牌 */
    @ApiModelProperty(value = "品牌")
    private String brandName;

    @ApiModelProperty(value = "品牌")
    private String goodsExtAttr;

    /** 价格 */
    @Excel(name = "价格")
    @ApiModelProperty(value = "价格")
    private BigDecimal price;
    /** 规格 */
    @Excel(name = "规格")
    @ApiModelProperty(value = "规格")
    private Integer specsQty;

    /** 停用标签 */
    @ApiModelProperty(value = "停用标签")
    private String closeFlag;

    /** 描述 */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /** 版本号 */
    @ApiModelProperty(value = "版本号")
    private Long ver;

    /**
     * 审核状态  10 待审核 20 待复审  30 已审核
     */
    @Excel(name = "审核状态  10 待审核 20 待复审  30 已审核")
    @ApiModelProperty(value = "审核状态  10 待审核 20 待复审  30 已审核")
    private Integer auditStatus;

    /**
     * 审核人id
     */
    @Excel(name = "审核人id")
    @ApiModelProperty(value = "审核人id")
    private Long auditById;

    /**
     * 审核人名称
     */
    @Excel(name = "审核人名称")
    @ApiModelProperty(value = "审核人名称")
    private String auditByName;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "审核时间")
    private LocalDateTime auditTime;


    /**
     * @param GdsSkuPurchasePriceCurTypeEnum 币种枚举
     */
    @ApiModelProperty(value = "币种")
    private Integer curType;

}
